CNC made Robot Arm Project.

OK, some stuff before I start.
  1. I sometimes make these commercially, and sometimes make the detailed drawings loosely based on these primitives available commercially, however, this is free, gratis, no charge etc, but I'm mindful of these not being seen as sneaky promo spam, so I have actually put a little effort into taking the primitives and making them into a unique thing for this project.
  2. To this end, this is NOT A FINISHED PROJECT, you absolutely WILL REQUIRE some form of CAD software capable of importing .dxf format files and tweaking the project to suit your needs. Only once you have completed this can you export the finished objects to your CAM software.
  3. Included in the project are drawings for both 23 and 17 frame steppers, and also for a linear stepper with 12 mm stroke which I use for the grab at the end of the arm.
  4. One of the reasons for leaving this project incomplete is that it allows you to specify such things as the size and type of bearings used at each joint, and the size and type of threaded bar used to control each linkage, and indeed whether or not you even decide to use stepper motors at all.
Having gotten that out of the way, a brief project description.

I was dissatisfied with all the robot arms out there, either they all looked really good until you realised that the "not to scale" illustration showed it next to a grain of rice, or they were all ridiculously complex and expensive.

Overall I kept seeing the same issues, lifting capacity / weight was negligible, reach was negligible, precision and repeatability didn't appear to factor in anywhere, nor did robustness and durability, they all seemed to me to be made like jigsaw kits, where the buyer simply assembled them, and the assembling was where the pleasure was supposed to be.

So, let's talk about this design.

Arm reach height 500 mm max from table.
Arm reach length 400 mm max from centre of base.
Arm precision with care better than 1 mm XYZ.
Arm lifting capacity better than 2.5 Kg in acrylic, 5 kg in alu.

  1. You can build it out of 10 mm acrylic and have a reasonably useful and reasonably accurate robot arm, or you can build it out of 10 mm aluminium and have a fairly "Industrial" grade robot arm. Personally I'd recommend building it in acrylic FIRST, to learn the tricks, then re-using the parts.
  2. If you build in aluminium you can "lighten" the arms by cutting out webs etc, if you are building in acrylic no matter how much the temptation to make it look pretty by cutting out webs, resist, you need all the "meat" you can get.
  3. If building in acrylic you absolutely need an acrylic solvent / adhesive to join / weld some of the parts together. Acrylic is a LOT more flexible than aluminium and so features like the "elbow boss" are essential to maintain rigidity.
  4. If you already have a CNC machine then you'll know that small stepper motors themselves are quite cheap, so your CNC hardware will control your robot arm quite happily, this dramatically reduces the expense.
  5. IN THEORY, if you are careful, you could get precision in the centre of the envelope of 0.1 mm with alu (and 1 mm with acrylic), which is more than enough to for example pick and place 2.54 mm pitch electronic components on a circuit board, whereas the lifting capacity is more than enough to wield a dremel tool or small hot glue gun or soldering iron.
For the purposes of this document I will now talk exclusively in acrylic, because you should make an acrylic one first anyway.
 
The Base (92 kb dxf)
The base is just three 200 mm diameter disks of 10 mm thick, stacked one on top of the other.
On top of these disks are the four flanges that support the "1st stage" arm etc.
Each of the three disks needs to be welded together to form a solid whole, for rigidity. Then the four flanges can be attached, use spacers.
If you are going to provide for (not included in this project) 360 degree rotation of the Robot Arm you should do it by rotating this whole base. You could consider a 23 or 17 frame stepper motor and 5mm pitch toothed timing belt using the OD of the Base as the driven pulley.

The 1st Stage Arm (31 kb dxf)
The 1st stage arm should have a range of movement around its lower pivot point of at least 90 degrees.
This should be 25 degrees past vertical on the side nearest the edge of the base, and 65 degrees past vertical on the side furthest from the edge of the base where the four flanges taper down to the surface of the base.
Control of the angle of the 1st stage arm is via the 1st stage muscle (not included in plans)
You could consider mounting a 17 frame stepper at the lower end of the 1st stage arm, sharing a common pivot point with the 1st stage arm and base, this stepper driving a threaded bar that attached to a linkage that goes to the end of the 2nd stage arm. This will become the 2nd stage muscle.
If you do this, you have to consider clearances etc for the mechanism for the 1st stage muscle with reference to the base and 1st stage arm.
Watch out for shearing stresses with acrylic and "muscle / arm / arm" triangles describing small angles, you want each side of each "Muscle" triangle as similar in length as possible. Hint, adding a protruding mounting point to the 1st stage arm to carry the upper end of the 1st stage muscle makes life easier.
It isn't just stresses that shoot up when muscle triangles start describing small angles, you lose positional accuracy in a big way too.

The 2nd Stage Arm ( 82 kb dxf)
The 2nd stage arm should have a range of movement around its pivot point of at least 90 degrees .
This should be about 45 degrees either side of at right angles to the 1st stage arm.
Control of the angle of the 2nd stage arm is via the 2nd stage muscle (not included in plans)
As said above, consider a 17 frame stepper driving a leadscrew which in turn pulls a link from the short end of the 2nd stage arm.
Note the 2nd stage arm pivot around the 1st stage arm has stiffeners, not this stiffener boss is slotted for a leadscrew.
A 17 frame stepper (and leadscrew) mount is provided at the end of the 2nd stage arm, this controls the angle of the Wrist, eg the business end of the 2nd stage arm which holds the linear stepper motor. This is the wrist muscle. I haven't included any detail about the "business" end of the wrist muscle as regards to attachment points / flanges etc.
The linear stepper at the "business" end of the 2nd stage arm is the hand muscle.
The 12mm stroke can control a pincer grab quite nicely.

The stepper motors (2691 kb dxf )
These are actual size for a 23 frame stepper of 1 Newton Metre force and a 17 frame stepper of the same power, and of a linear stepper motor with 12 mm stroke and 5 NM force

The complete project (2879 kb dxf)

Now, there are some things to note while looking at these drawings in your favourite CAD application.

The rigidity, precision and therefore usefulness of this project is going to live and die by how well you do the pivot points. In the drawings I have assumed 10 mm diameter shafting, which means cheap enough 10 mm ID bearings, but anyone who just looks at their bearing and thinks "OK, 25mm OD bearing, just make a 25mm dia recess, export this to the CAM software, send that to the mill, and voila!" is in for a hard time.

You're in for a hard time because things like bearings really actually are the size the manufacturer says they are, to within the tolerance the manufacturer specifies, so my home made lego works fine, and your home made lego works fine, but unless we all have exactly the same calibrated ruler, and use it to ensure that our lego comes out the same size the drawing says it should be, your lego will not work with my lego.


A 1 Newton-Metre stepper direct driving a leadscrew can easily generate 100 Kg thrust, this isn't going to do the stepper motor much good, nor is it going to do the acrylic much good, I ask you to note the approximately 3:1 ratio between the two sides of the 2nd stage arm, lifting 2.5 Kg on one side of this (when at 90 degrees) will equate to a 7.5 Kg load on the other side. Even with proper thrust bearings to save the stepper motor, we really don't want to go much over 15 Kg (when the angle between stage 1 and 2 arms is not a right angle), which will be 7.5 Kg per side of this design, nota bene, we have essentially a 2 sided design here, and 7.5 Kg per side is enough load for the 2nd stage arm to carry safely, without flexing unduly, and without exceeding shear loads on mount points, anchor points and pivots.

Both the 1st stage and 2nd stage arms should have some cross bracing between each side, but you absolutely need to get your "muscles" sorted first, and your degrees of movement sorted, and limit switches at the extents of your limits of movement to prevent it powering on into the "narrow triangle" akin to a scissor jack and breaking stuff.

While a robot arm is moving in a Cartesian universe (eg XYZ) it does not move in a linear fashion like a mill, every movement is an arc, or combination of arcs, so controlling it requires thought.  Every time you want to have the "hand" describe a linear motion in cartesian space you have to tell the arms to move in a set of curves that total out to a linear motion at the end of the robot arm.

This project will rapidly introduce you to many aspects of this field.

I just blindly assume that EVERYONE will do as I say here and make the acrylic one first, even if they only actually want the aluminium one,
the only way you are not going to destroy your aluminium robot arm is if you have already made an acrylic one
.

Trust me.

One of the REALLY interesting and informative things you can do with the acrylic one is to shine polarised light through it to see where the stresses are when loading it in different ways.

If you go and make an acrylic model first you're pretty much guaranteed to break some part of it when playing, which is good, because it is cheap to fix and it teaches you, but the aluminium model will be much more expensive to fix, so the chances are you will blame the model, and not yourself.

IN all likelihood robot arms are one of those things that, once you have built one, well, you don't rush out and build a bigger and better one, because you have got it out of your system, and while cool, playing with a physical model teaches you all the problems that mere theory could never do.

One of the main things to learn with robot arms is the interplay between arm material physical properties and overall strength and rigidity, rigid costs money, because rigid is either done by exotic material or exotic design, or maybe both.

There are ways of vastly improving this design, for instance do away with all the muscles and put the muscle in the pivot itself, as in commerical robot arms, but at a stroke you say bye bye to ten dollar stepper motors doing the work through 2 dollar bearings.

As of the time of writing, I've "sold" 3 lots of the commercial version of this, all three are used commercially in conjuction with a separate rotary table to coat a variety of rather small objects, repetitively, on demand, the commercial application in question is both simple, and very clever, I wish I could say more. However, while the commercial versions and this version share the same genetic heritage, they aren't the same.

While there is a tendency to say that the relationship between the commercial product and the freebie is that the freebie is crap, with designs that isn't the case, what makes the commercial cousin of this commercial are some design solutions to that specific requirement... none of you have that requirement, so why burden you with that bit of design?

These supplied plans aren't therefore complete, there are essentially no anchor points, no mounting points, no geometry, no bracing, and the solutions to these questions are always specific to your own particular application.
However, there is enough meat here that pretty much by definition anyone capable of building a working robot arm is capable of fleshing out the few details missing.


FYI I mainly use Rhino for CAD, MeshCAM for CAM and Mach3 for CNC.

If you need me you can try https://surfbaud.dyndns.org/ (self signed cert)

December 2008